﻿<ExtensionModel>

	<!-- Extension Points -->

	<ExtensionPoint path = "/MonoDevelop/UnitTesting/TestProviders" name = "Test providers" defaultInsertBefore="VsTestProvider">
		<Description>Test providers. Specified classes must implement ITestProvider.</Description>
		<ExtensionNode name ="Class" />
	</ExtensionPoint>

	<ExtensionPoint path = "/MonoDevelop/UnitTesting/ContextMenu/TestChart">
		<ExtensionNodeSet id="MonoDevelop.Components.Commands.ItemSet"/>
	</ExtensionPoint>

	<ExtensionPoint path = "/MonoDevelop/UnitTesting/ContextMenu/TestPad">
		<ExtensionNodeSet id="MonoDevelop.Components.Commands.ItemSet"/>
	</ExtensionPoint>

	<ExtensionPoint path = "/MonoDevelop/UnitTesting/ContextMenu/TestResultsPad">
		<ExtensionNodeSet id="MonoDevelop.Components.Commands.ItemSet"/>
	</ExtensionPoint>

	<ExtensionPoint path = "/MonoDevelop/UnitTesting/NUnitSourceCodeLocationFinder">
		<ExtensionNode name="Class"/>
	</ExtensionPoint>

	<ExtensionPoint path = "/MonoDevelop/UnitTesting/UnitTestMarkers" name = "Unit Test Markers">
		<Description>Unit test markers are used to identify test methods in soure code.</Description>
		<ExtensionNode name ="TestMarkers" type="MonoDevelop.UnitTesting.UnitTestMarkersExtension"/>
	</ExtensionPoint>

	<!-- Extensions -->

	<Extension path = "/MonoDevelop/Ide/Pads">
		<SolutionPad id = "MonoDevelop.UnitTesting.TestPad" defaultLayout="*" defaultPlacement = "Right" defaultStatus="AutoHide" _label = "Unit Tests" icon = "nunit-pad-icon" class = "MonoDevelop.UnitTesting.TestPad" group="Unit Testing">
			<PadOption id = "ShowTestTime" _label = "Show Test Time" defaultValue = "False" />
			<PadOption id = "ShowTestCounters" _label = "Show Test Counters" defaultValue = "False" />
			<PadOption id = "CombineTestNamespaces" _label = "Combine Test Namespaces" defaultValue = "True" />
			<NodeBuilder id = "TestNode" class = "MonoDevelop.UnitTesting.TestNodeBuilder"/>
		</SolutionPad>
		<Pad id="MonoDevelop.UnitTesting.TestResultsPad" _label="Test Results" icon="nunit-pad-icon" class="MonoDevelop.UnitTesting.TestResultsPad" defaultPlacement = "Bottom" defaultLayout="UnitTesting" defaultStatus="AutoHide"  group="Unit Testing"/>
	</Extension>

	<Extension path="/MonoDevelop/Ide/WorkbenchLayouts">
		<Layout id="UnitTesting" _name="Unit Testing">
			<LayoutPad id="MonoDevelop.UnitTesting.TestPad" status="Dockable" />
			<LayoutPad id="MonoDevelop.UnitTesting.TestResultsPad" status="Dockable" />
		</Layout>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/Commands">
		<Category _name = "Unit Testing" id = "UnitTesting">
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.RunAllTests"
			_label = "Run Unit Tests"
			icon = "md-run-unit-tests"
			_description="Runs all tests of the current selected project."
			shortcut="Control|T"
			defaultHandler="MonoDevelop.UnitTesting.Commands.RunAllTestsHandler"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.RunTestWith"
			_label = "Run With"
			type="array"
			_description="Runs tests using a special execution mode."/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.DebugTest"
			_label = "Debug Test"
			type="array" />
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.DebugAllTests"
			_label = "Debug All Tests"
			_description="Debug all tests of the current selected project."
			defaultHandler="MonoDevelop.UnitTesting.Commands.DebugAllTestsHandler"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.RunTest" _label = "Run Test" />
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.ShowTestCode" _label = "Show test source code" />
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.GoToFailure" _label = "Go to failure" />
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.SelectTestInTree" _label = "Select test in tree" />
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.ShowTestDetails" _label = "Show results pad" />
		<Command id = "MonoDevelop.UnitTesting.Commands.TestCommands.RerunTest" _label = "Rerun test" />
		<Command id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.UseTimeScale" _label = "Proportional time scale" type="check"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.SingleDayResult" _label = "Show one result per day" type="check"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowResults" _label = "Results chart" type="radio"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowTime" _label = "Time chart" type="radio"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowSuccessfulTests" _label = "Show successful tests" type="check"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowFailedTests" _label = "Show failed tests" type="check"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowIgnoredTests" _label = "Show ignored tests" type="check"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TextEditorCommands.RunTestAtCaret" _label = "Run Test at Caret"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TextEditorCommands.DebugTestAtCaret" _label = "Debug Test at Caret"/>
		<Command id = "MonoDevelop.UnitTesting.Commands.TextEditorCommands.SelectTestAtCaret" _label = "Select Test at Caret"/>
		</Category>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/MainMenu/Run">
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.RunAllTests" />
	</Extension>

	<Extension path = "/MonoDevelop/UnitTesting/ContextMenu/TestPad">
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.RunTest" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.DebugTest" />
		<ItemSet id = "RunTestWith" _label = "Run Test With">
			<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.RunTestWith" />
		</ItemSet>
		<SeparatorItem id = "s0" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.GoToFailure" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.ShowTestCode" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.ShowTestDetails" />
	</Extension>

	<Extension path = "/MonoDevelop/UnitTesting/ContextMenu/TestResultsPad">
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.GoToFailure" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.ShowTestCode" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.SelectTestInTree" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestCommands.RerunTest" />
		<SeparatorItem id = "s1" />
		<CommandItem id = "MonoDevelop.Ide.Commands.EditCommands.Copy" />
	</Extension>

	<Extension path = "/MonoDevelop/UnitTesting/ContextMenu/TestChart">
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowResults" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowTime" />
		<SeparatorItem id = "s1" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowSuccessfulTests" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowFailedTests" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.ShowIgnoredTests" />
		<SeparatorItem id = "s2" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.UseTimeScale" />
		<CommandItem id = "MonoDevelop.UnitTesting.Commands.TestChartCommands.SingleDayResult" />
	</Extension>

	<Extension path = "/MonoDevelop/UnitTesting/TestProviders">
		<Class id="SystemTestProvider" class="MonoDevelop.UnitTesting.SystemTestProvider" />
		<Class id="VsTestProvider" class="MonoDevelop.UnitTesting.VsTest.VsTestTestProvider" />
	</Extension>

	<Extension path = "/MonoDevelop/Core/StockIcons">
		<StockIcon stockid = "nunit-pad-icon" resource = "pad-unit-test-16.png" size="Menu" />
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/ProjectModelExtensions">
		<Class class = "MonoDevelop.UnitTesting.UnitTestProjectServiceExtension" />
	</Extension>
	
</ExtensionModel>
